# Json => 字典
json = {"name":"张三","age":23}; #创建方式1
print(json); #{'name': '张三', 'age': 23, 'sex': '男'}
json = dict(name='李四',age=24); #创建方式2
print(json); #{'name': '李四', 'age': 24}

''' ----------------------------- 增 -----------------------------'''
json['sex'] = '男';
print(json); #{'name': '张三', 'age': 23, 'sex': '男'}

''' ----------------------------- 删 -----------------------------'''
del json['sex']; # 根据指定键删除
print(json); #{'name': '张三', 'age': 23}

json.clear();
print(json); #{}
''' ----------------------------- 改 -----------------------------'''
json['name'] = '王五';
print(json); #{'name': '王五', 'age': 23}

''' ----------------------------- 查 -----------------------------'''
# 第一种方式
name = json['name'];
print(name); #王五

# 第二种方式
name = json.get("name");
print(name); #王五

# 区别 get(); 如果json中不存在指定key，可以设置不存在情况下返回数据
name = json.get("address","未知KEY");
print(name); #未知KEY


''' ----------------------------- 其他函数 -----------------------------'''

person = {"name":"老黑","age":30,"sex":1,"address":"中国","tel":"18888888888"};

# keys 获取json的key列表，需要转换下
keys = person.keys();
print(keys); #dict_keys(['name', 'age', 'sex', 'address', 'tel'])
print(list(keys)) #['name', 'age', 'sex', 'address', 'tel']

# values 获取json的value列表，需要转换下
values = person.values();
print(values); #dict_values(['老黑', 30, 1, '中国', '18888888888'])
print(list(values)) #['老黑', 30, 1, '中国', '18888888888']

# items 获取json的item列表，需要转换下
items = person.items();
print(items); #dict_items([('name', '老黑'), ('age', 30), ('sex', 1), ('address', '中国'), ('tel', '18888888888')])
print(list(items)) #[('name', '老黑'), ('age', 30), ('sex', 1), ('address', '中国'), ('tel', '18888888888')]
print(list(items)[0]) #('name', '老黑')


# 字典生成式
keys = ["name","sex","age"];
values = ["张三",1,23];

# key,value 都是自定义的接收变量
json = {key:value for key,value in zip(keys,values)};
print(json); #{'name': '张三', 'sex': 1, 'age': 23}

# 遍历
for item in person.keys():
    print(person[item]);


